package bar;

import exceptions.EqualLugsException;

public class Bar {
    private final int id;
    private Lug lug1 = Lug.Zero;
    private Lug lug2 = Lug.Zero2;
    
    public Bar(int id){
	this.id=id;
    }
    
    
    public void setLugs(Lug lug1, Lug lug2) throws EqualLugsException{
	if(lug1!=Lug.Null && lug1==lug2){
	    throw new EqualLugsException(this, lug1);
	}else{
	    this.lug1 = lug1;
	    this.lug2 = lug2;
	}
    }
    
    
    
    
    
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }


    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
	return String.format("%02d", id) + ":" + lug1.getId() + "," + lug2.getId();
    }


    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + id;
	return result;
    }


    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
	if (this == obj)
	    return true;
	if (obj == null)
	    return false;
	if (getClass() != obj.getClass())
	    return false;
	Bar other = (Bar) obj;
	if (id != other.id)
	    return false;
	return true;
    }


    /**
     * @return the lug1
     */
    public Lug getLug1() {
        return lug1;
    }
    /**
     * @param lug1 the lug1 to set
     */
    public void setLug1(Lug lug1) {
        this.lug1 = lug1;
    }
    /**
     * @return the lug2
     */
    public Lug getLug2() {
        return lug2;
    }
    /**
     * @param lug2 the lug2 to set
     */
    public void setLug2(Lug lug2) {
        this.lug2 = lug2;
    }
    
    
}
